from __future__ import annotations
from abc import ABC, abstractmethod
from typing import List

from ..ingredient.abstract import *

__all__ = ["PizzaIngredientFactory"]

class PizzaIngredientFactory(ABC):
    @abstractmethod
    def create_dough(self) -> Dough:
        ...

    @abstractmethod
    def create_sauce(self) -> Sauce:
        ...

    @abstractmethod
    def create_cheese(self) -> Cheese:
        ...

    @abstractmethod
    def create_veggies(self) -> List[Veggies]:
        ...

    @abstractmethod
    def create_pepperoni(self) -> Pepperoni:
        ...

    @abstractmethod
    def create_clam(self) -> Clams:
        ...
